<?php

/**
 * 小程序服务商管理系统 v1.0.1
 *
 * 商业运营到axzz.cn官网进行授权使用。
 *
 * (c) cighsen02 <xiayu@959602.com>
 *
 * Create at：2025.06.27
*/

namespace App\Services\Admin;

use Exception;
use Laravel\Passport\RefreshTokenRepository;
use Illuminate\Support\Facades\Auth;

/**
 * 后台登陆、退出服务层
 */
class Guest extends UserService
{
    public function __construct(
        protected RefreshTokenRepository $refreshTokenRepository
    )
    {}

    /**
     * 登出
     *
     * @return void
     *
     * @throws Exception
     */
    public function destroy(): void
    {
        if (null === $token = Auth::guard('admin')->user()?->token()) {
            throw new Exception('', 404);
        }

        $token->revoke();

        $this->refreshTokenRepository->revokeRefreshTokensByAccessTokenId($token->id);
    }
}
